package org.dromara.school.domain.vo;

import org.dromara.school.domain.Student;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.school.domain.StudentParent;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * 学生管理视图对象 school_student
 *
 * @author gjb
 * @date 2025-05-28
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = Student.class)
public class StudentVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Long studentId;

    /**
     * 所属校区
     */
    private String campusName;
    /**
     * 学生姓名
     */
    @ExcelProperty(value = "学生姓名")
    private String studentName;

    /**
     * 学号
     */
    @ExcelProperty(value = "学号")
    private Long studentNumber;

    /**
     * 学籍号
     */
    @ExcelProperty(value = "学籍号")
    private Long studentCode;

    /**
     * 性别
     */
    @ExcelProperty(value = "性别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_user_sex")
    private Long sex;

    /**
     * 头像
     */
    private String headSculptureId;

    /**
     * 在读状态
     */
    @ExcelProperty(value = "在读状态")
    private String studentStatus;

    /**
     * 民族
     */
    @ExcelProperty(value = "民族")
    private String nation;

    /**
     * 居住地址
     */
    @ExcelProperty(value = "居住地址")
    private String address;

    /**
     * 省
     */
    private String province;

    /**
     * 市
     */
    private String city;

    /**
     * 区
     */
    private String districts;

    /**
     * 所属班级
     */
    private Long classesId;

    /**
     * 所属校区
     */
    private Long schoolCampusId;

    /**
     * 联系电话
     */
    @ExcelProperty(value = "联系电话")
    private String contact;

    /**
     * 账号
     */
    @ExcelProperty(value = "账号")
    private String studentAccount;

    /**
     * 密码
     */
    private String studentPassword;

    /**
     * 备注
     */
    private String remark;


    private List<StudentParent> studentParents;

    private Integer classYear;

    private Integer classNum;

    private String className;
}
